1. Field of the Invention
The present invention relates to processing units for a vector computer and, more particularly, to pipeline processing units for use in a supercomputer.
2. Description of the Prior Art
In the simulation of physical phenomena by means of a computer, it is necessary to describe the movement of substances by use of continuum models or particle models and decide as well as classify their behavior at each sampling point of time.
For example, in the field of nuclear power technology, particle models are generally used to describe the movement of particles such as neutrons and photons in three-dimensional complex geometric spaces in such a case each individual particle has as its attributes a particle number and a domain number which represents a spatial domain where the particle exists at present. The domain is constituted by a combination of a logical sum and product of three-dimensional basic configurations defined previously, such as a circular cylinder, a sphere, a rectangular parallelepiped, etc. (the combination being referred to as "solid model") or a combination of a logical sum and product of a plurality of curved surfaces defined previously (the combination being referred to as "surface model").
In existing supercomputers, that is, vector computers, a set of such particles (hereinafter referred to as a "bank") is handled as a one-dimensional array such as that shown in FIG. 2 in order to process data in the form of vectors. In the particle bank shown in FIG. 2, the numerals 1 . . . N put at the upper side of the array denote the respective positions in the bank, while the numerals in the bank exemplarily show particle numbers.
When the particles move, it is necessary to make a check to ascertain whether or not each particle remains within the previous domain at each sampling point of time and it is necessary in order to effect such a check to make a decision by performing a computation in regard to each individual particle for each geometric configuration of the domain to which it belongs. To perform the decision by vector processing, the following method may be considered. Namely, particles are classified according to domains having different configurations such as a sphere, circular cylinder, rectangular parallelepiped, etc. to prepare a group of subbanks, which are subsets, and vector processing is carried out for each subbank at a stroke. However, the classification of particles, which cannot be conducted by vector processing, requires a time-consuming form of processing and constitutes one of the obstacles to computational processing in this field in the use of a vector computer.
The physical behavior of particles, such as the length of stay in a domain and the reflection and absorption at the domain surface, are expressed in the form of a logical decision which is given by a true/false value, i.e., 1 or 0, in the field of scientific and technological computation. Classification of the behavior of particles that is expressed in the form of a true/false value has heretofore been conducted by the use of collection and diffusion instructions on the basis of the value, 1 or 0, which is loaded on a mask register. However, this is also a time-consuming form of processing and constitutes another obstacle to computational processing in this field in the use of a vector computer.
As has been described above, a three-dimensional spatial domain is defined by a solid model or a surface model. For example, in a surface model having a configuration such as that shown in FIG. 3, the domain of a cell D is expressed as shown by the logical expression A using the surface numbers 1 to 8 (in the expression, the numerals are surface numbers and the signs indicate whether the domain is in a negative or positive direction with respect to the surface. In the definition of the configurations, a domain which is computationally contradictory may occur due to an input error, a computational error or a logical error in the computer program. FIG. 4 shows one example of the occurrence of such a contradictory domain. More specifically, when the union of two polygons A and B shown in FIG. 4(a) is to be computed, the vertex made up of the sides a and b of the polygon A and the vertex made up of the sides c and d of the polygon B are close to each other. In this case, an undefined domain C such as that indicated by the arrow in FIG. 4( b) may occur due to a computational error or some other error, or it may be erroneously decided that the sides b and c intersect each other but the sides a and d do not intersect each other, as shown in FIG. 4(c). In such a case, the union cannot be correctly computed.
In a simulation computation, if a particle enters the contradictory domain (such a particle being referred to as a "lost particle"), the particle's domain number being an attribute value thereof is not coincident with the domain number of the domain where the particle should actually exist. If the computation is continued with the lost particle being left as it is, a runaway of the computer program may be caused. Therefore, in order to discover the lost particle during the computation, the following method is employed in the case of a surface model, for example:
(i) Each time a particle enters a new domain, a curved surface expression (each surface number shown in FIG. 3 corresponds to an expression that defines a surface) is selected from a logical expression that defines the new domain (i.e., the logical expression A in the case where the new domain is the domain D) and the coordinates representing the position of the particle are substituted into the expression to obtain a positive, negative or zero value.
(ii) If the sign of the value resulting from the substitution is coincident with the sign of the corresponding surface number in the logical expression defining the domain concerned, the surface number is replaced by 1, whereas, if the two signs are not coincident with each other, the corresponding surface number in the logical expression is replaced by 0.
(iii) The procedures (i) and (ii) are carried out for all the surface numbers in the logical expression, thereby obtaining a logical expression in which each of the surface numbers of the former expression is replaced by 1 or 0. The logical expression B shown in FIG. 3 is one example of the result obtained by carrying out this procedure with respect to the logical expression A for a certain particle.
(iv) The logical expression obtained in (iii) is computed, and if the resulting value is 0, it is decided that the particle is present in a domain having a contradiction, that is, a lost particle.
Since the above-described computation of the logical expression includes many conditional branches, if it is intended to collectively process logical expressions for all particles by a vector computer, the computing speed cannot be increased and this is one of the obstacles to computational processing in this field by a vector computer.
As has been described above, in the simulation of a physical phenomenon by means of a particle model, a large number of particles are all moved together in a space, and after absorption into a substance, scattering at the substance surface, etc. has been judged, the particles are classified into subbanks, i.e., a group of particles concerned with the absorption, a group of particles concerned with the scattering, etc., and a computation is further carried out for each particle group. At this time, the computational quantity of the vector processing for each particle group is generally small and the computational quantity of the scalar processing executed to compute the address of a variable in advance is larger than that of the vector processing. Accordingly, if, while the vector processing unit and the scalar processing unit are executing a DO loop, that is, a repetitive computation, the address of a variable used in the next DO loop is computed in parallel with the execution of the present DO loop, it is possible to shorten the time required for the computation. Although some of the conventional large-scale vector computers have a function by which scalar processing and vector processing are executed in parallel, the conventional vector computer systems suffer from the disadvantages that each loop contains many computations including scalar processings and the parallel operation is obstructed and that it is only possible to sequentially execute the instruction at the address indicated by a program counter that is being executed but it is impossible to execute in parallel a scalar instruction which is stored in a distant address.
Thus, conventional vector computers are incapable of using vector processing for various classification processings, decision of a contradictory domain and other processings and cannot completely perform computational processing of a variable address and ordinary processing in parallel. Therefore, there has heretofore been a limit to the increase of the processing speed of vector computers. Under these circumstances, it is an object of the present invention to solve these problems and increase the processing speed of vector computers.